package com.py.outbound.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 出库管理对象 wh_outbound
 * 
 * @author ruoyi
 * @date 2024-12-16
 */
@ToString
public class WhOutbound extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 出库Id */
    private Long outboundId;

    /** 出库编码 */
    @Excel(name = "出库编码")
    private String outboundCode;

    /** 出库类型 */
    @Excel(name = "出库类型")
    private String outboundType;

    /** 出库状态 */
    @Excel(name = "出库状态")
    private String outboundStatus;

    /** 仓库名称 */
    @Excel(name = "仓库编号")
    private String warehouseCode;

    /** 出库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outboundTime;

    /** 关联单号 */
    @Excel(name = "关联单号")
    private String relatedNumber;

    /** 出库目标（收货人/供应商） */
    @Excel(name = "出库目标", readConverterExp = "收=货人/供应商")
    private String relatedTarget;

    /** 收货人 */
    @Excel(name = "收货人")
    private String consignee;

    /** 联系方式  */
    @Excel(name = "联系方式 ")
    private String phone;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewer;

    /** 审核理由 */
    @Excel(name = "审核理由")
    private String reviewerReport;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewerTime;

    /** 出库数量 */
    @Excel(name = "出库数量")
    private Long reviewerNumber;

    /** 出库金额 */
    @Excel(name = "出库金额")
    private BigDecimal reviewerMoney;

    /** 创建时间*/
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间" ,width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 制单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "制单时间", width = 30, dateFormat = "yyyy-MM-dd")
    @Transient
    private Date creationTime;

    /** 逻辑删除 */
    private String isDelete;

    /** 文件 */
    @Transient
    private List<Object> fileList;

    @Transient
    private Integer number;
    @Transient
    private Integer codeId;

    private String productNames;

    public String getProductNames() {
        return productNames;
    }

    public void setProductNames(String productNames) {
        this.productNames = productNames;
    }

    /**
     * 出库明细表
     */
    @Transient
    private BigDecimal unitPrice;

    @Transient
    private Integer outStorage;

//    /**
//     * 出库总单据
//     */
//    @Transient
//    private Integer outboundCount;
//
//    @Transient
//    private String outbound;

    /***
     * 货品信息表
     */
    @Transient
    private String nameCount;

    @Transient
    private String productName;

    /**
     * 入库明细表
     */
    @Transient
    private Integer quantityReceived;

    @Transient
    private BigDecimal inboundPrice;

    /**
     * 入库总单据
     */
    @Transient
    private Integer inboundCount;

    @Transient
    private String inbound;

    //代办事项
    @Transient
    private String name;
    @Transient
    private int count;



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getInbound() {
        return inbound;
    }

    public void setInbound(String inbound) {
        this.inbound = inbound;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public BigDecimal getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }


    public Integer getQuantityReceived() {
        return quantityReceived;
    }

    public void setQuantityReceived(Integer quantityReceived) {
        this.quantityReceived = quantityReceived;
    }

    public BigDecimal getInboundPrice() {
        return inboundPrice;
    }

    public void setInboundPrice(BigDecimal inboundPrice) {
        this.inboundPrice = inboundPrice;
    }

    public Integer getInboundCount() {
        return inboundCount;
    }

    public void setInboundCount(Integer inboundCount) {
        this.inboundCount = inboundCount;
    }

    public String getNameCount() {
        return nameCount;
    }

    public void setNameCount(String nameCount) {
        this.nameCount = nameCount;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }


    public Integer getOutStorage() {
        return outStorage;
    }

    public void setOutStorage(Integer outStorage) {
        this.outStorage = outStorage;
    }

    public void setOutboundId(Long outboundId)
    {
        this.outboundId = outboundId;
    }

    public Long getOutboundId() 
    {
        return outboundId;
    }
    public void setOutboundCode(String outboundCode) 
    {
        this.outboundCode = outboundCode;
    }

    public String getOutboundCode() 
    {
        return outboundCode;
    }
    public void setOutboundType(String outboundType) 
    {
        this.outboundType = outboundType;
    }

    public String getOutboundType() 
    {
        return outboundType;
    }
    public void setOutboundStatus(String outboundStatus) 
    {
        this.outboundStatus = outboundStatus;
    }

    public String getOutboundStatus() 
    {
        return outboundStatus;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public void setOutboundTime(Date outboundTime)
    {
        this.outboundTime = outboundTime;
    }

    public Date getOutboundTime() 
    {
        return outboundTime;
    }
    public void setRelatedNumber(String relatedNumber) 
    {
        this.relatedNumber = relatedNumber;
    }

    public String getRelatedNumber() 
    {
        return relatedNumber;
    }
    public void setRelatedTarget(String relatedTarget) 
    {
        this.relatedTarget = relatedTarget;
    }

    public String getRelatedTarget() 
    {
        return relatedTarget;
    }
    public void setConsignee(String consignee) 
    {
        this.consignee = consignee;
    }

    public String getConsignee() 
    {
        return consignee;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setReviewer(String reviewer) 
    {
        this.reviewer = reviewer;
    }

    public String getReviewer() 
    {
        return reviewer;
    }
    public void setReviewerReport(String reviewerReport) 
    {
        this.reviewerReport = reviewerReport;
    }

    public String getReviewerReport() 
    {
        return reviewerReport;
    }
    public void setReviewerTime(Date reviewerTime) 
    {
        this.reviewerTime = reviewerTime;
    }

    public Date getReviewerTime() 
    {
        return reviewerTime;
    }
    public void setReviewerNumber(Long reviewerNumber) 
    {
        this.reviewerNumber = reviewerNumber;
    }

    public Long getReviewerNumber() 
    {
        return reviewerNumber;
    }
    public void setReviewerMoney(BigDecimal reviewerMoney) 
    {
        this.reviewerMoney = reviewerMoney;
    }

    public BigDecimal getReviewerMoney() 
    {
        return reviewerMoney;
    }
    public void setIsDelete(String isDelete) 
    {
        this.isDelete = isDelete;
    }

    public String getIsDelete() 
    {
        return isDelete;
    }

    public List<Object> getFileList() {
        return fileList;
    }

    public void setFileList(List<Object> fileList) {
        this.fileList = fileList;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Integer getCodeId() {
        return codeId;
    }

    public void setCodeId(Integer codeId) {
        this.codeId = codeId;
    }
}
